"""
普通格局八种：
    正印格
    偏印格
    食神格
    伤官格
    正财格
    偏财格
    七杀格
    正官格
"""
from ..shishen import ShiShen



def general_geju(mp):
    my_wx = mp.riyuan.gan.wuxing  # 日主五行
    gans = [zhu[0].gan for zhu in mp.sizhu]
    options = []
    for idx, cg in enumerate(mp.yueling.zhi.gans):
        distance = my_wx.distance(cg.wuxing)
        same_yy = mp.riyuan.gan.yinyang == cg.yinyang
        if distance == 0: continue
        options.append((                # 排序规则
            1 if cg in gans else 0,     # 第一，有没有透出
            1 if idx == 0 else 0,       # 第二，是不是本气
            mp.energy[cg.wuxing.name],  # 第三，藏干所属五行
            ShiShen.get_item(same_yy, distance)
        ))
    options = sorted(options)  # 最后一项是最优项
    return options[-1][-1].name + '格'
